package com.ruoyi.system.api.wrapper;

import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.RemoteSysDeptService;
import com.ruoyi.system.api.domain.SysDept;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 部门微服务包装服务，对微服务接口进行了封装，直接返回需要的数据。
 *
 * @author ruoyi
 * @date 2023-04-27
 */
@Component
public class RemoteSysDeptWrapperService extends RemoteBaseWrapperService {

    @Autowired
    private RemoteSysDeptService remoteSysDeptService;

    /**
     * 查询部门
     *
     * @param deptId 部门主键
     * @return 部门
     */
    public SysDept selectSysDeptByDeptId(Long deptId) {
        R<SysDept> result = remoteSysDeptService.selectSysDeptByDeptId(deptId, SecurityConstants.INNER);
        return processResult(result);
    }

    /**
     * 查询部门列表
     *
     * @param sysDept 部门
     * @return 部门集合
     */
    public List<SysDept> selectSysDeptList(SysDept sysDept) {
        R<List<SysDept>> result = remoteSysDeptService.selectSysDeptList(sysDept, SecurityConstants.INNER);
        return processResult(result);
    }

    /**
     * 新增部门
     *
     * @param sysDept 部门
     * @return 结果
     */
    public Integer insertSysDept(SysDept sysDept) {
        R<Integer> result = remoteSysDeptService.insertSysDept(sysDept, SecurityConstants.INNER);
        return processResult(result);
    }

    /**
     * 修改部门
     *
     * @param sysDept 部门
     * @return 结果
     */
    public Integer updateSysDept(SysDept sysDept) {
        R<Integer> result = remoteSysDeptService.updateSysDept(sysDept, SecurityConstants.INNER);
        return processResult(result);
    }

    /**
     * 批量删除部门
     *
     * @param deptIds 需要删除的部门主键集合
     * @return 结果
     */
    public Integer deleteSysDeptByDeptIds(Long[] deptIds) {
        R<Integer> result = remoteSysDeptService.deleteSysDeptByDeptIds(deptIds, SecurityConstants.INNER);
        return processResult(result);
    }
}
